#!/bin/bash

rm -rf /app/node/*
cp -R /app/pro/cz-23yw/hws-node/* /app/node

# 添加端口映射
# echo "**********************添加端口映射**********************"
# DOCKER1="/app/pro/cz-23yw/docker-compose-node+3001.yml"
# TAG_DOCKER="/app/docker-compose.yml"
# rm -rf $TAG_DOCKER
# cp $DOCKER1 $TAG_DOCKER
echo "**********************重新创建所有容器**********************"
cd /app
docker kill node nginx
docker rm node nginx
# docker-compose down
docker-compose up -d



echo "**********************修改数据库配置**********************"
# 定义文件路径
FILE="/app/node/config.development.js"

# 获取服务器IP地址
TARGET_HOST=$(wget -qO- ifconfig.me)

# 检查文件是否存在
if [ ! -f "$FILE" ]; then
    echo "文件 $FILE 不存在。"
    exit 1
fi

# 读取文件内容
CONTENT=$(cat "$FILE")

# 检查是否包含正确的 host 配置
HOST_COUNT=$(echo "$CONTENT" | grep -o "host:'$TARGET_HOST'," | wc -l)

if [ "$HOST_COUNT" -eq 2 ]; then
    echo "两个 host 配置都是 '$TARGET_HOST'。"
else
    # 替换或添加 host 配置
    # sed -i '' "s/host:[^,]*/host:'$TARGET_HOST'/g" "$FILE"
    sed -i "s/host:'.*,/host:'$TARGET_HOST',/g" $FILE
    echo "host 配置已更新为 '$TARGET_HOST'。"
fi

echo "**********************初始化**********************"
sh /app/pro/cz-23yw/hws-node/sh/mysql_check.sh

echo "**********************修改后端请求ip配置**********************"
# 定义文件路径
FILE1="/app/node/admin/H5/js/config.js"

# 检查文件是否存在
if [ ! -f "$FILE1" ]; then
    echo "文件 $FILE1 不存在。"
    exit 1
fi

# 读取文件内容
CONTENT1=$(cat "$FILE1")

# 检查是否包含正确的 host 配置
HOST_COUNT1=$(echo "$CONTENT1" | grep -o "host:'$TARGET_HOST:80'," | wc -l)

if [ "$HOST_COUNT1" -eq 1 ]; then
    echo "两个 host 配置都是 '$TARGET_HOST'。"
else
    # 替换或添加 host 配置
    echo "当前 TARGET_HOST 是: $TARGET_HOST"
    echo "正在更新 $FILE1 文件中的 host 配置..."
    # sed -i '' "s/APIURL:[^,]*|/APIURL:'$TARGET_HOST'/g" "$FILE1"
    sed -i "s|APIURL:[^,]*|APIURL:'http://$TARGET_HOST:3001'|g" "$FILE1"
    sed -i "s|JAVAURL:[^,]*|JAVAURL:'http://$TARGET_HOST:8080'|g" "$FILE1"
    echo "host 配置已更新为 '$TARGET_HOST'。"
fi



# 定义初始端口号
port=80

# 向nginx的default.conf文件中添加server配置
config_file="/app/nginx/default.conf"

# 创建新的server配置块
server_block="
server {
    listen       $port;
    listen  [::]:$port;
    server_name  localhost;

    location / {
        proxy_pass http://192.168.5.105:3001/;
        proxy_set_header Host $host:$server_port;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
"
# 检查default.conf文件中是否已经存在指定端口的配置
if grep -q "listen\s*$port;" "$config_file"; then
    echo "Port $port is already configured in $config_file."
else
    # 如果不存在，则将新的server配置块添加到文件末尾
    echo "$server_block" >> "$config_file"
    echo "Added server block for port $port to $config_file."
fi
docker restart nginx

echo "**********************启动项目**********************"
docker exec -d node sh -c "nohup npm run dev > nohup.out 2>&1 &"

# 等待几秒钟让日志输出到文件
sleep 5

# 进入node容器查看日志
echo "**********************查看启动日志**********************"
docker exec -it node sh -c "tail -f nohup.out"
